实验:迪杰斯特拉路由计算器

目标 🎯

  • 任务: 找出从源服务器 `S` 到所有其他服务器的最佳路径。
  • 输出要求: 对每个服务器 `i`,你必须计算:
    • 总延迟: 从 `S` 到 `i` 的最小代价(最短路径)。
    • 下一跳: 该最短路径上的第一个服务器。
  • 示例: 如果从 `S` 到 `D` 的最佳路径是 `S -> A -> B -> D`,则 **下一跳** 为 `A`。

网络结构 💾

我们将使用一个 邻接表 来存储网络结构。
  • 服务器是 节点
  • 连接是 双向边
  • 延迟是 正权重
// 连接:0-1 (10毫秒),0-2 (3毫秒)
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]

输出格式 ⚙️

你需要输出 `V` 行,每行 `i` 对应服务器 `i`。

  • [延迟] [下一跳]

    对于可达的节点。

  • 0 -1

    如果该节点就是源服务器 `S` 本身。

  • -1 -1

    如果该节点无法从 `S` 到达。